參考書:職業駭客的修練-機械碼與底層的把玩藝術
計算機架構中CPU與記憶體的關係,參照wiki 介紹
https://computersciencewiki.org/index.php/Architecture_of_the_central_processing_unit_(CPU)
有心人士可以去讀取或修改記憶體內的數值來做到想要的事,譬如緩衝區溢位(buffer overflow)
https://en.wikipedia.org/wiki/Buffer_overflow
童年的回憶用遊戲修改大師修改數字
實作模擬一下
加法運算,總數是25,這裡來修改數字影響結果。
#include <stdio.h>
#include<stdlib.h>
int main() {
int number1 = 10;
int number2 = 15;
printf("Sum is %d\n", number1 + number2);
system("pause");
return 0;
}
選number1那行放中斷點再執行,進到偵錯模式,number有10跟15,轉換成16進位0A跟0F
number1前面的記憶體位置為003C178E,搜尋後找到0a,右鍵編輯成11(就是十進位的17
點繼續讓程式繼續跑完,結果變成32 (17+15),而不是原先25 (10+15)
TCP(Trusted Computing Base)
來源:https://www.youtube.com/watch?v=l5we5EOQ-YY
gipi的學習筆記-新手必讀-中斷點的使用
https://dotblogs.com.tw/jimmyyu/2009/06/02/8648